package redis

import (
	"fmt"
	"hello/config"
	"hello/module"
	"log"

	"github.com/go-redis/redis"
)

// 声明一个全局的rdb变量
var Rdb *redis.Client

// 初始化连接
func InitRDB(c config.RedisConfig) (err error) {
	Rdb = redis.NewClient(&redis.Options{
		Addr:     c.Addr,
		Password: c.Password, // no password set
		DB:       1,          // use default DB
	})

	pong, err := Rdb.Ping().Result()
	if err != nil {
		fmt.Println("连接Redis失败:", err)
		return err
	}
	fmt.Println("连接Redis成功:", pong)
	return nil
}

func GetHashCount(key string) module.CnafRedisMetric {
	val, err := Rdb.HLen(key).Result()

	if err != nil {
		log.Fatalf("获取哈希表字段数量时出错: %v", err)
		return module.CnafRedisMetric{}
	}
	return module.CnafRedisMetric{
		FlightKey:   key,
		FlightValue: float64(val),
	}

}
